#ifndef OPCV_H
#define OPCV_H

#include <QWidget>
#include <QMessageBox>
#include <QPushButton>
#include <QDebug>
#include <QFile>
#include <QTimer>
#include <vector>

using namespace std;

// OpenCV头文件
#include <opencv2/opencv.hpp>
using namespace cv;
//人脸识别器头文件
#include <opencv2/face.hpp>
using namespace cv::face;

namespace Ui {
class opcv;
}

class opcv : public QWidget
{
    Q_OBJECT

public:
    explicit opcv(QWidget *parent = 0);
    ~opcv();

private:
    Ui::opcv *ui;
    bool isRecording;
    //存放每一帧图像
    Mat src;
    //级联分类器 作用：查找人脸
    CascadeClassifier classifier;
    //播放视频的对象
    VideoCapture vc;
    QTimer* timer;
    //正中间 300*300矩形（有效识别范围）
    Rect r;
    //中间300*300小图
    Mat midSrc;
    //容器：级联分类器找到的人脸矩形
    vector<Rect> vec_findFaces;

    void showSrc(); // 显示摄像头图像
    void findFace();
    void blackSrc();


private slots:
    void timeoutSlot();
    void on_pushButton_clicked(); // 新增的按钮点击槽函数
    void on_pushButton_2_clicked(); // 声明新的槽函数
    void on_pushButton_3_clicked();
};

#endif // OPCV_H
